Functional Core, Imperative Shell
#純粋関数
#設計
https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell
https://testing.googleblog.com/2025/10/simplify-your-code-functional-core.html
非純粋関数はテストしにくいので、できる限り「純粋」部分を切り取り、非純粋になる部分を薄くしようということ。
それによって、非純粋部分が絡むテストを少なくする。